<?php
declare (strict_types = 1);

namespace app\adminapi\controller;

use app\common\validate\CheckRole;
use app\common\validate\UpdateRole;
use think\exception\ValidateException;
use think\facade\Db;
use think\Request;

class Role
{
    /**
     * 角色列表展示
     *
     * @return \think\Response
     */
    public function index(Request $request)
    {
        //
        $page=$request->get('page',1);
        $size=$request->get('size',5);
        $data=\app\common\model\Role::field('role_name,desc')->paginate([
            'list_rows'=> $size,
            'page'=>$page
        ]);
        return successes('查询成功',$data);


    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //

    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //验证数据
        $data=$request->all();
        try {
            validate(CheckRole::class)->check($data);
            $res= \app\common\model\Role::create($data);
            if($res){
                return successes('添加成功');
            }else{
                return fail('添加失败');
            }
        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            return fail($e->getError());

        }



    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
        $data=$request->all();
        try {
            validate(UpdateRole::class)->check($data);
            $res= \app\common\model\Role::where('id',$id)->save($data);
            if($res){
                return successes('修改成功');
            }else{
                return fail('修改失败');
            }
        } catch (ValidateException $e) {
            // 验证失败 输出错误信息
            return fail($e->getError());

        }

    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete(int $id)
    {
        //
       $res=\app\common\model\Role::destroy($id);
       if($res){
           return successes('删除成功');
       }else{
           return fail('删除失败');
       }

    }
}
